package com.example.springshell.extensions;

import org.springframework.shell.standard.ShellComponent;
import org.springframework.shell.standard.ShellMethod;

/**
 * 输入参数转换
 *
 * 命令方法 user 的参数是 User 类型。当运行命令"user alex"时，输入参数 alex
 * 会通过UserConverter中的类型转换服务转换成对应的 User 对象，
 * 然后输出 User 对象的属性值 name。如果找不到与输入参数值对应的 User 对象，则输出"User not found"。
 */
@ShellComponent
public class UserCommandApp {
  @ShellMethod("User")
  public void user(final User user) {
    if (user != null) {
      System.out.println(user.getName());
    } else {
      System.out.println("User not found");
    }
  }
}